//有一个自行车手打算进行一场公路骑行，这条路线总共由n + 1个不同海拔的点组成。自行车手从海拔为 0的点0开始骑行。
//
//给你一个长度为 n的整数数组gain，其中 gain[i]是点 i和点 i + 1的 净海拔高度差（0 <= i < n）。请你返回 最高点的海拔 。
//
//示例 1：
//输入：gain = [-5,1,5,0,-7]
//输出：1
//解释：海拔高度依次为 [0,-5,-4,1,1,-6] 。最高海拔为 1 。



package main

import "fmt"

func largestAltitude(gain []int) int {
	num :=0
	gain = append(gain, 0)
	gain = append(gain[len(gain)-1:len(gain)], gain[:len(gain)-1]...)
	for i:=1;i<len(gain);i++{
		gain[i] = gain[i-1] + gain[i]
	}
	for i:=0;i<len(gain);i++{
		if gain[i]>num{
			num = gain[i]
		}
	}
	return num
}


func main() {
	gain := []int{-5,1,5,0,-7}
	res := largestAltitude(gain)
	fmt.Println(res)
}
